# -*- coding:utf-8 -*-

"""
Equation, dicts
"""

import json
import os

import yaml

ca92 = {
    'title': '恶臭气体的散发速率',
    'desc': '恶臭气体的散发速率',
    'res': ['E:cm^3/s'],
    'p': [
        'u: 风速(m/s)',
        'D: 扩散率(cm^/s)',
        'W:堆场或填场的宽度(cm)',
        'L:堆场或填场的长度(cm)',
        'm:土壤中挥发性化合物的重量(kg)',
        'Mt:土壤与化合物的总重量(kg)',
        'C:化学气体蒸汽压(101.325kPa)',
        'F:蒸汽压校正系数',
    ],
    'py': ['(2*C*W*m)/Mt*Math.pow((D*L*u)/(Math.PI*F),0.5)'],
    'js': ['(2*C*W*m)/Mt*Math.pow((D*L*u)/(Math.PI*F),0.5)'],
    'keywords': '恶臭气体,散发速率',
}

f100 = {
    'title': '噪声衰减的计算：自由空间与半自由空间',
    'keywords': '环评,噪声,噪声衰减,自由空间,半自由空间',
    'desc': '噪声衰减的计算：自由空间',
    'p': ['lwa: 声源声功率级', 'r:至声源的距离'],
    'res': ['la1:自由空间处声功率级', 'la2: 半自由空间处声功率级'],
    'py': ['lwa - 20 * Math.log(r, 10) - 11', 'lwa - 20 * Math.log(r, 10) - 8'],
}
a900 = {
    'title': '计算三角形面积：已知底与高的值',
    'desc': '计算三角形面积：已知底与高的值',
    'p': [
        'b: 底边边长',
        'h: 高度',
    ],
    'res': ['res1:三角形面积'],
    'py': ['b * h / 2'],
    # 'latex': r'''E = 0.000501 \times V \times 0.823 \times U \times 0.139 \times T / 4''',
    'keywords': '三角形,面积',
}

a903 = {
    'title': '计算三角形面积：已知三边长度',
    'desc': '已经知道三角形三条边的长度，可以唯一确定一个三角形，从而可以计算其面积',
    'res': ['res1:三角形面积'],
    'p': [
        'a: 边长a',
        'b: 边长b',
        'c: 边长c',
    ],
    'py': ['Math.sqrt( (a + b + c)  * (a + b - c)  * (a - b + c) * ( b - a + c) ) / 4'],
    # 'latex': r'''E = 0.000501 \times V \times 0.823 \times U \times 0.139 \times T / 4''',
    'keywords': '三角形,面积',
}

a907 = {
    'title': '圆环面积计算',
    'desc': '圆环面积计算',
    'p': [
        'R: 外径',
        'r: 内径',
    ],
    'res': ['res1:圆形面积', 'res2:圆环径'],
    'py': ['Math.PI * ( R * R - r * r) ', 'R -r'],
    # 'latex': r'''E = 0.000501 \times V \times 0.823 \times U \times 0.139 \times T / 4''',
    'keywords': '梯形,面积',
}

# a908 = {
# 'title': '正方体表面积与体积计算',
# 'desc': '正方体表面积与体积计算',
#     'p': ['R: 边长',
#     ],
#     'res': ['res1:正方体表面积',
#             'res2:正方体体积'],
#     'py': [' 6 * R * R  ',
#            'R * R * R '],
#     # 'latex': r'''E = 0.000501 \times V \times 0.823 \times U \times 0.139 \times T / 4''',
#     'keywords': '梯形,面积',
# }


##########
# 刘建新开始
a132 = {
    # 'sig': 'guoluyanqi',
    'title': '降雨历时5min的暴雨强度计算',
    'desc': '降雨历时5min的暴雨强度计算',
    'res': ['I: I，降雨强度（mm/min）', 'q5:q5，降雨历时5min的暴雨强度[L/(s.100m2)]'],
    'p': [
        'P: 重现期（a）',
        't: 降雨历时，取5min',
        'A1: 为当地降雨参数',
        'b: 为当地降雨参数',
        'c: 为当地降雨参数',
        'n: 为当地降雨参数',
    ],
    'py': [' A1 * (1+c* Math.log(P)) / ((t + b) * n)', '1.67 * I '],
}

a133 = {
    # 'sig':'huanjingchengzaili' ,
    'title': '箱内污染物浓度计算',
    'desc': '箱内污染物浓度计算',
    'res': ['c:箱内污染物浓度计算'],
    'p': [
        'I:箱的长度',
        'h:箱的高度即混合层高度',
        'a:初始条件，污染物的本底厚度',
        'K:污染物的衰减速度常熟',
        'Q:污染物的源强',
        'u:平均风速',
        't:时间坐标',
        'l:为参数',
    ],
    'py': ['a+((Q/h-a*K)/(u/l+K))*(I-Math.pow(Math.e, Math.pow((K-u/I),t)))'],
    # 'js':'a+((Q/h-a*K)/(u/l+K))*(I-Math.pow(Math.E, Math.pow((K-u/I),t)))',
    # 'latex':r'''a+((Q/h-a*K)/(u/l+K))*(I-math.pow(math.e, math.pow((K-u/I),t)))''',
}

a134 = {
    # 'sig':'daqihuanjingmoshijisuan',
    'title': '根据常规地面气象资料求混合层高度的在线计算方法',
    'desc': """根据常规地面气象资料求混合层高度的在线计算方法<br />此公式来自《大气环境模式计算方法》，当使用书中给的值代入计算，会发现云算笔记给的结果比书中的结果小了125m左右。<br />
    经过检查，发现书中的地转参数使用了近似值进行计算，此值虽小，对结果影响较大。此记。
    """,
    'res': ['F:地转参数', 'res1:混合成高度计算'],
    'p': [
        'A:地面温度 ℃',
        'D:露点温度 ℃',
        'U:10m高风速 m/s',
        # 'F:地转参数',
        # 'B:地球自转角度',
        'C:地理纬度 º',
        'M:地面粗糙度 m',
        'P:Pasqill稳定度类型',
    ],
    'py': [
        '2 * 7.27 * Math.sin(C) / 100000 ',
        '121 * (6-P)*(A-D) / 6 + 0.169 * (U+0.257) * P  /(12* F *Math.log(10/M, Math.E))',
    ],
    # 'latex':r'''(121/6)*(6-P)*(A-D)+((0.169*(U+0.257)*P)/(12*F*math.pow(math.e,(Z/M))))''',
}

a135 = {
    # 'sig':'hiezhuheyingxiang',
    'title': '黑猪河污染物浓度计算',
    'desc': '黑猪河污染物浓度计算',
    'res': ['res1:黑猪河污染物浓度计算'],
    'p': [
        'C:黑猪河污染物浓度',
        'A:废水污染物浓度',
        'B:废水排放量',
        'D:河流上游污染物的浓度',
        'H:河流流量',
    ],
    'py': ['(A*B+D*H)/(B+H)'],
    # 'latex':r'''(A*B+D*H)/(B+H)''',
}

###########################

a124 = {
    'keywords': '环评,理论空气需要量,计算',
    'desc': '理论空气需要量（VO）的计算 ',
    'title': '理论空气需要量（VO）的计算 ',
    'p': ['QL:燃料应用基低位发热值'],
    'res': ['VO:燃料燃烧所需理论空气量 '],
    'js': ['0.251*QL/1000+0.278'],
    'py': ['0.251*QL/1000+0.278'],
}

a125 = {
    'keywords': '环评,理论空气需要量,计算',
    'desc': '理论空气需要量（VO）的计算_模型一',
    'title': '理论空气需要量（VO）的计算_模型一',
    'p': ['QL:燃料应用基低位发热值'],
    'res': ['VO:燃料燃烧所需理论空气量 '],
    'js': ['QL/4140+0.606'],
    'py': ['QL/4140+0.606'],
}
a107 = {
    'keywords': '葡萄酒生产,耗水量',
    'desc': '耗水量 ',
    'title': '生产葡萄酒耗水量 ',
    'p': ['Qt:葡萄酒生产年耗新鲜水量', 'Yw: 葡萄酒的年产量'],
    'res': ['Q:生产每KL葡萄酒的耗水量 '],
    'js': ['Qt/Yw'],
    'py': ['Qt/Yw'],
}
f005 = {
    'keywords': '理论空气,需要量',
    'desc': '理论空气需要量（VO）的计算_模型二',
    'title': '理论空气需要量（VO）的计算_模型二',
    'p': ['QL:燃料应用基低位发热值'],
    'res': ['VO:燃料燃烧所需理论空气量 '],
    'js': ['0.203*QL/1000+2'],
    'py': ['0.203*QL/1000+2'],
}
a128 = {
    'keywords': '环评,水泥立窑,废气量',
    'desc': '水泥立窑废气量的估算 ',
    'title': '水泥立窑废气量的估算 ',
    'p': [
        'M:立窑熟料全年产量',
        'Qa:单位熟料的废气生成量',
        'K1:生产不均匀系数',
        'K2:漏风系数',
    ],
    'res': ['Q年:立窑排放的年废气量 '],
    'js': ['M*Qa*K1*K26'],
    'py': ['M*Qa*K1*K2'],
}

a108 = {
    'keywords': '葡萄酒生产,耗电量',
    'desc': '耗电量 ',
    'title': '葡萄酒生产年耗电量 ',
    'p': ['Wt:葡萄酒生产年耗电量', 'Yw: 葡萄酒的年产量'],
    'res': ['W:生产每KL葡萄酒的耗电量 '],
    'js': ['Wt/Yw'],
    'py': ['Wt/Yw'],
}
a105 = {
    'keywords': '葡萄酒生产,出汁率',
    'desc': '出汁率 ',
    'title': '葡萄生产出汁率 ',
    'p': ['Wj: 年葡萄汁总量', 'Wr: 葡萄原料总消耗量'],
    'res': ['Rj:出汁率 '],
    'js': ['Wj/Wr*100'],
    'py': ['Wj/Wr*100'],
}
a106 = {
    'keywords': '葡萄酒生产,出酒率',
    'desc': '出酒率 ',
    'title': '葡萄生产出酒率 ',
    'p': ['Yq:年葡萄酒合格品量', 'G: 20摄氏度时葡萄酒的密度', 'Wr: 葡萄原料年总消耗量'],
    'res': ['Rw:出酒率 '],
    'js': ['Yq*G/Wr*100'],
    'py': ['Yq*G/Wr*100'],
}

a121 = {
    'keywords': '冷却水循环,利用率',
    'desc': '冷却水循环利用率 ',
    'title': '冷却水循环利用率 ',
    'p': ['Rp:冷却水重复利用量', 'Qr:重复利用水量', 'Qf: 冷却水用新水量'],
    'res': ['Ru:冷却水循环利用率 '],
    'js': ['Rp/(Qf+Qr)*100'],
    'py': ['Rp/(Qf+Qr)*100'],
}
a120 = {
    'keywords': '葡萄酒生产,皮渣及发酵渣产生量',
    'desc': '皮渣及发酵渣产生量 ',
    'title': '皮渣及发酵渣产生量 ',
    'p': ['P:葡萄酒生产中产生的湿皮渣和发酵皮渣', 'Yw: 葡萄酒的年产量'],
    'res': ['Cp:生产每KL葡萄酒皮渣及发酵渣产生量 '],
    'js': ['P/Yw'],
    'py': ['P/Yw'],
}
a109 = {
    'keywords': '葡萄酒生产,综合能耗',
    'desc': '综合能耗 ',
    'title': '生产每KL葡萄酒的综合能耗',
    'p': ['Ej:葡萄酒生产年综合能耗', 'Yw: 葡萄酒的年产量'],
    'res': ['E:生产每KL葡萄酒的综合能耗 '],
    'js': ['Ej/Yw'],
    'py': ['Ej/Yw'],
}
a126 = {
    'keywords': '环评,烟气量计算',
    'desc': '实际烟气量的计算 ',
    'title': '实际烟气量的计算 ',
    'p': ['Alpha:过剩空气系数', 'VO:燃料燃烧所需理论空气量', 'QL:燃料应用基低位发热值'],
    'res': ['Qy:实际烟气量 '],
    'js': ['1.04*QL/4187+0.77+1.0161*(Alpha-1)*VO'],
    'py': ['1.04*QL/4187+0.77+1.0161*(Alpha-1)*VO'],
}

a130 = {
    'keywords': '环评,固定顶罐,工作排放',
    'desc': '工作排放 ',
    'title': '固定顶罐的工作排放 ',
    'p': [
        'M:储罐内蒸汽的分子量',
        'P:在大量液体状态下，真实的蒸汽压力',
        'KN:周转因子',
        'KC:产品因子',
    ],
    'res': ['LW:固定顶罐的工作损失 '],
    'js': ['4.188*Math.pow(10,-7)*M*P*KN*KC'],
    'py': ['4.188*Math.pow(10,-7)*M*P*KN*KC'],
}
a104 = {
    'keywords': '环评,锅炉,烟尘',
    'desc': '锅炉烟尘计算',
    'title': '锅炉烟尘计算',
    'p': [
        'G: 耗煤量',
        'A: 煤中灰分',
        'EtaA: 煤中飞灰占灰分的百分比。',
        'Eta: 除尘效率',
    ],
    'res': ['Q:锅炉烟尘'],
    'js': ['G*A*EtaA*(1-Eta)'],
    'py': ['G*A*EtaA*(1-Eta)'],
}

a102 = {
    'py': ['M*(0.000352+0.000786*V)*P*F'],
    'title': '液体（除水以外）蒸发量',
    'desc': '液体（除水以外）蒸发量',
    'p': [
        'A: 煤的灰分，％',
        'M: 液体分子量 ',
        'V:蒸发液体表面上的空气流速（米/秒），以实测数据为准，无条件实测，一般可取0.2-0.5）',
        'P:相应于液体温度下的空气中的蒸汽分压力（毫米汞柱），当液体浓度低于10%时，用水溶液的饱和蒸汽压代替；当液体重量浓度高于10%',
        'F: 液体蒸发面的表面积',
    ],
    'keywords': '环评,液体,蒸发量',
    'js': ['M*(0.000352+0.000786*V)*P*F'],
    'res': ['GZ:千克/时'],
}
a834 = {
    'py': ['1.6*B*S'],
    'title': '锅炉燃煤烟气烟尘和SO2',
    'desc': '锅炉燃煤烟气烟尘和SO2',
    'p': ['S: 煤中的全硫份含量，％', 'B: 燃煤量，㎏'],
    'keywords': '环评,锅炉燃煤,烟气烟尘',
    'js': ['1.6*B*S'],
    'res': ['Gso2:SO2产生量，㎏'],
}

a89a = {
    'py': ['P*0.81*S*(V/30)*((365-W)/365)*(T/4)'],
    'title': '建设工地起尘量计算',
    'desc': '建设工地起尘量计算',
    'p': [
        'V: 平均车速，km/h',
        'W: 一年中降水量大于0.254mm的天数',
        'T: 平均轮胎数',
        'S: 表面粉矿成分百分比，12% ',
        'P:可扬起尘粒比例数',
    ],
    'keywords': '环评,建设工地,起尘量',
    'js': ['P*0.81*s*(v/30)*((365-w)/365)*(t/4)'],
    'res': ['E:单辆车引起的道路起尘量散发因子，kg/km'],
}

a111 = {
    'py': ['B*A*dfh/(1-Cfh)'],
    'title': '烟尘产生量',
    'desc': '烟尘产生量',
    'p': [
        'A: 煤的灰分，％',
        'B: 时间参数',
        'dfh: 烟气中烟尘占灰分量的百分比，％',
        'Cfh:烟尘中可燃物的百分含量，％',
    ],
    'keywords': '环评,烟尘,产生量',
    'js': ['B*A*dfh/(1-Cfh)'],
    'res': ['Gsd:烟尘产生量，㎏'],
}
aa4c = {
    'py': ['0.000501 * V * 0.823 * U * 0.139 * T / 4'],
    'title': '道路起尘量计算',
    'desc': '道路起尘量计算',
    'p': ['V: 车辆', 'U: —起尘风速，一般取5m/s', 'T: —每辆车的平均轮胎数，一般取6'],
    'keywords': '环评,道路,起尘量',
    'js': ['0.000501 * V * 0.823 * U * 0.139 * T / 4'],
    'res': ['E:单辆车引起的道路起尘量散发因子，kg/km'],
}

ac8d = {
    'py': ['0.05*(pV/1.5)*(pd/90)*(pd/255)*(pf/15)'],
    'title': '车辆行驶导致的煤堆起尘量计算',
    'desc': '车辆行驶导致的煤堆起尘量计算',
    'p': [
        'pV:车辆驶过煤堆的平均车速，km/h',
        'pd:每年干燥天数，d',
        'pf:风速超过19.2km/h的百分数。',
    ],
    'keywords': '环评,煤堆,起尘量',
    'js': ['0.05*(V/1.5)*(D/90)*(d/255)*(f/15)'],
    'res': ['pE:单辆车引起的煤堆起尘量散发因子，kg/km'],
}

f002 = {
    'py': [
        '11.7* Math.pow(U,2.45)* Math.pow(S,0.345)*Math.pow(Math.e,-0.5*V)*Math.pow(Math.e,-0.55*(w-0.07))'
    ],
    'title': '环评_煤堆起尘量计算',
    'desc': '煤堆起尘量计算',
    'p': [
        'U: 临界风速，m/s，取大于5.5m/s',
        'S: 煤堆表面积，m2',
        'V: 空气相对湿度，取60%',
        'w:煤物料湿度，原煤6%。',
    ],
    'keywords': '环评,煤堆,起尘量',
    'js': [
        '11.7*Math.pow(U, 2.45)*Math.pow(S,0.345)*Math.pow(e,-0.5*ω)*Math.pow(e,-0.55*(w-0.07))'
    ],
    'res': ['Qm:煤堆起尘量，mg/s'],
}

a129 = {
    'keywords': '环评,固定顶罐,呼吸排放',
    'desc': '呼吸排放 ',
    'title': '固定顶罐的呼吸排放 ',
    'p': [
        'M:储罐内蒸汽的分子量',
        'P:在大量液体状态下，真实的蒸汽压力',
        'D:罐的直径',
        'H:平均蒸汽空间高度',
        'DeltaT:一天之内的平均温差',
        'FP:涂层因子（无量纲）',
        'C:用于小直径罐的调节因子（无量纲）',
        'KC:产品因子',
    ],
    'res': ['LB:固定顶罐的呼吸排放量 '],
    'js': [
        '0.191*M*Math.pow((P/(100910-P)),0.68)*D*1.73*H*0.51*Math.pow(DeltaT,0.45)*FP*C*KC'
    ],
    'py': [
        '0.191*M*Math.pow((P/(100910-P)),0.68)*D*1.73*H*0.51*Math.pow(DeltaT,0.45)*FP*C*KC'
    ],
}
a123 = {
    'keywords': '工业废气,实测法,排放总量',
    'desc': '实测法 ',
    'title': '工业废气排放总量计算实测法 ',
    'p': [
        'Q:废气小时排放量',
        'By:全年燃料耗量（或熟料产量）',
        'bh: 在正常工况下每小时的燃料耗量（或熟料产量）',
    ],
    'res': ['res1:全年废气排放量 '],
    'js': ['Q*B/b/10000'],
    'py': ['Q*By/bh/10000'],
}
a127 = {
    'keywords': '环评,烟气总量,计算',
    'desc': '烟气总量的计算 ',
    'title': '烟气总量的计算 ',
    'p': ['B:燃料耗量', 'Qy:实际烟气量'],
    'res': ['Q总:烟气总量 '],
    'js': ['B*Qy'],
    'py': ['B*Qy'],
}

a131 = {
    'keywords': '环评,固体废物,锅炉',
    'desc': '固体废物的计算 ',
    'title': '固体废物的计算 ',
    'p': [
        'B:锅炉燃煤量',
        'A:燃煤的应用基灰分',
        'Eta:除尘效率',
        'CZ:炉渣中可燃物百分含量',
        'Cf:煤灰中可燃物的百分含量',
        'dz:炉渣中的灰分占燃煤总灰分的百分比',
        'dfh:烟尘中的灰分占燃煤总灰分的百分比',
        't:时间',
        'a:总时间',
    ],
    'res': ['GZ:锅炉炉渣产生量 ', 'Gf:锅炉粉煤灰产生量 '],
    'js': ['((dz*B*A)/(1-CZ))*(t/a)', '((dfh*B*A*Eta)/(1-Cf))*(t/a)'],
    'py': ['((dz*B*A)/(1-CZ))*(t/a)', '((dfh*B*A*Eta)/(1-Cf))*(t/a)'],
}
a103 = {
    'keywords': '环评,锅炉,烟气',
    'desc': '锅炉烟气计算',
    'title': '锅炉烟气计算',
    'p': [
        'G: 耗煤量',
        'S: 煤中含硫量',
        'Etaso2: 脱硫效率，麻石水浴、水膜按40%计，石灰石-石膏法按90%计。',
    ],
    'res': ['Q:锅炉烟气'],
    'js': ['G*2*0.8*S*(1-Etaso2)'],
    'py': ['G*2*0.8*S*(1-Etaso2)'],
}

a110 = {
    'keywords': '葡萄酒生产,废水产生量',
    'desc': '废水产生量 ',
    'title': '生产每KL葡萄酒的废水产生量 ',
    'p': ['Vw:年废水产生量', 'Yw: 葡萄酒的年产量'],
    'res': ['Vp:生产每KL葡萄酒的废水产生量 '],
    'js': ['Vw/Yw'],
    'py': ['Vw/Yw'],
}

f003 = {
    'py': ['2.1*K*Math.pow((U-U0),3)*Math.pow(Math.e,(-1.023*W))*p'],
    'title': '秦皇岛码头煤堆起尘量计算',
    'desc': '秦皇岛码头煤堆起尘量计算',
    'p': [
        'K: 经验系数，是煤含水量的函数，取K=0.96',
        'U: 煤场平均风速，m/s',
        'U0: 煤尘的启动风速，m/s，取3.0m/s',
        'W:煤尘表面含水率，%',
        'p:煤场年累计堆煤量，t/a',
    ],
    'keywords': '环评,码头,煤堆起尘量',
    'js': ['2.1*k*Math.pow((U-u0),3)*Math.pow(e,(-1.023*w))*p'],
    'res': ['Qp:煤堆起尘量，kg/a'],
}
#
f053 = {
    'py': ['C * 24  * (D-d) * P * (l - Ac) * E * Math.pow(10,-6)', 'QA*l'],
    'title': '一年中单位长度道路的起尘量计算',
    'desc': '一年中单位长度道路的起尘量计算',
    'p': [
        'C: 每小时平均车流量，辆/h',
        'D: 计算的总天数，365天',
        'd: 一年中降水量大于0.254mm的天数',
        'P: 道路级别系数，如内环线以内可取0.4，内外环线之间取0.8',
        'Ac: 消尘系数，如内环线以内可取0.4，内外环线之间取0.2',
        'l: 道路长度，km',
        'E: 单辆车引起的道路起尘量散发因子',
    ],
    'keywords': '环评,道路,起尘量',
    'js': [
        'C * 24  * (D-d) * P * (l - Ac) * E * 10^(-6)',
        'C * 24  * (D-d) * P * (l - Ac) * E * 10^(-6)*l',
    ],
    'res': ['QA:一年中单位长度道路的起尘量，t', 'Q:道路年起尘量，t'],
}

#
#
#
# ################
# # shiqi
# #################
#
#
f058 = {
    'keywords': '污染物,排放总量,最高',
    'desc': '某污染物最高允许排放总量',
    'title': '某污染物最高允许排放总量',
    'p': ['L负:工业污水污染物最高允许排放浓度', 'Y:核定的产品年产量'],
    'res': ['L总:某污染物最高允许排放量 '],
    'py': ['L负*Y / 1000'],
}
#
# f014 = {'keywords': '地面模型', 'desc': '地面模型 ', 'title': '地面模型 ', 'p': ['Q:', 'Pi:', 'u:', 'Dy:', 'Dz:', 'y:', 'He:'],
# 'res': ['C:'], 'js': ['(Q/(Pi*u*Dy*Dz))*math.exp(-(y**2/(2*Dy**2))-He**2/(2*Dz**2))'],
# 'py': ['(Q/(Pi*u*Dy*Dz))*math.exp(-(y**2/(2*Dy**2))-He**2/(2*Dz**2))']}
#

# 环评公式_83v.doc
f017 = {
    'keywords': '临界氧亏模型,在线计算',
    'desc': '临界氧亏模型在线计算',
    'title': '临界氧亏模型在线计算',
    'p': [
        'kd:有机物降解常数,d',
        'ka:大气富氧常数,d',
        't:时间,s',
        'Os:水中饱和溶解氧浓度,mg/L',
        'L0:第一阶段的BOD浓度,mg/L',
        'Do:溶解氧量,mg/L',
    ],
    'res': ['L:河水中BOD浓度,mg/L', 'O:临界氧亏值'],
    # 'js': ['L0*Math.exp(-kd*t)', 'Os-(kd*L0)/(ka-kd)*(Math.exp(-kd*t)-Math.exp(-ka*t))-D0*Math.exp(-ka*t)'],
    'py': [
        'L0* Math.exp(-kd*t)',
        'Os-(kd*L0)/(ka-kd)*( Math.exp(-kd*t)-Math.exp(-ka*t))-Do*Math.exp(-ka*t)',
    ],
}
#
f043 = {
    'keywords': '卫生,排放,防护距离',
    'desc': '无组织排放卫生防护距离 ',
    'title': '无组织排放卫生防护距离 ',
    'p': [
        'cm:标准浓度限值',
        'L:工业企业所需卫生防护距离',
        'r:有害气体无组织排放源所在生产单位的等效半径',
        'S:该生产单元占地面积',
        'A:卫生防护距离计算系数',
        'B:卫生防护距离计算系数',
        'C:卫生防护距离计算系数',
        'D:卫生防护距离计算系数',
    ],
    'res': ['Qc:工业企业有害气体无组织排放量可达到的控制水平 '],
    'py': ['((1/A)*Math.pow(B* Math.pow(L,C)+0.25*r * r ,0.5)* Math.pow(L, D) )*cm'],
}
f035 = {
    'keywords': '无限长,线声源,几何发散,衰减',
    'desc': '线声源的无限长线声源几何发散衰减在线计算。',
    'title': '线声源的无限长线声源几何发散衰减在线计算',
    'p': ['r0:参照点距离声源距离', 'r:预测点到声源距离', 'lr0:r0点的声级'],
    'res': ['A:无限长线声源的几何发散衰减', 'LR: 预测点的声级'],
    'py': ['10* Math.log(r/r0, 10)', '(lr0 - A) if (lr0 - A) > 0 else 0'],
    'js': ['10* Math.log(r/r0) '],
}

# f006 = {'keywords': '理论空气,需要量', 'desc': '理论空气需要量（VO）的计算 ', 'title': '理论空气需要量（VO）的计算 ', 'p': ['QL:燃料应用基低位发热值'],
# 'res': ['VO:燃料燃烧所需理论空气量 '], 'js': ['0.209*QL/1000'], 'py': ['0.209*QL/1000']}
f041 = {
    'keywords': '地面浓度',
    'desc': '地面浓度 ',
    'title': '地面浓度 ',
    'p': [
        'Q:单位时间排放量',
        'U:排气筒出口处的平均风速',
        'He:排气筒有效高度',
        'X:距排气筒下风向水平距离',
        'a1:横向扩散参数回归指数',
        'a2:铅直扩散参数回归指数',
        'y1:横向扩散参数回归系数',
        'y2:铅直扩散参数回归系数',
    ],
    'res': ['P1:P1', 'cm: cm最大落地浓度', 'Xm:Xm距排气筒距离'],
    'py': [
        '(2*y1*Math.pow(y2,(-a1/a2)))/(Math.pow((1+a1/a2),((1/2)*(1+a1/a2)))*Math.pow(He,(1-a1/a2))*Math.pow(Math.E,((1/2)*(1-a1/a2))))',
        '(2*Q)/(Math.E * Math.PI * He * He * P1)',
        'Math.pow((He/y2),(1/a2)*Math.pow((1+a1/a2),-(1/(2*a2))))',
    ],
}

# 环评公式_83v.doc
f019 = {
    'keywords': '昼夜,等效声效,在线计算',
    'desc': '昼夜等效声级在线计算',
    'title': '昼夜等效声级在线计算',
    'p': [
        'Ld:白天的等效A声级',
        'Ln:夜间的等效A声级',
    ],
    'res': ['Ldn:昼夜等效声级'],
    # 'js': ['10* Math.log(16*Math.pow(10,0.1*Ld+8*Math.pow(10,0.1*(Ln+10)))/24, 10)'],
    'py': [
        '10* Math.log((16* Math.pow(10,0.1*Ld) +8* Math.pow(10,0.1*(Ln+10)))/24, 10)'
    ],
}
#
# f018 = {'keywords': '弥散作用,模型', 'desc': '弥散作用模型 ', 'title': '弥散作用模型 ',
#         'p': ['C0:进入河流的污水的污染物浓度', 'ux:河流流速', 'Dx:纵向弥散系数', 'k:污染物衰减常数'], 'res': ['C: '],
#         'js': ['C0*Math.exp(((ux*x)/(2*Dx))*(1-Math.sqrt(1+((4*k*Dx)/ux**2))))'],
#         'py': ['C0*math.exp(((ux*x)/(2*Dx))*(1-math.sqrt(1+((4*k*Dx)/ux**2))))']}

f020 = {
    'keywords': '大气,污染,指数',
    'desc': '大气污染指数 ',
    'title': '大气污染指数 ',
    'p': ['Ci:污染物检测值', 'Coi:质量标准限值'],
    'res': ['Ii:污染物质量指数 '],
    'js': ['Ci/Coi'],
    'py': ['Ci/Coi'],
}
f057 = {
    'keywords': '工业污水,排放负荷,污染物',
    'desc': '工业污水污染物最高允许排放负荷计算 ',
    'title': '工业污水污染物最高允许排放负荷计算 ',
    'p': ['C:某污染物最高允许排放浓度', 'Q:某工业最高允许排水量'],
    'res': ['L负:工业污水污染物最高允许排放浓度 '],
    'py': ['C*Q / 1000'],
}
# f009 = {'keywords': '环评,烟气量计算', 'desc': '实际烟气量的计算 ', 'title': '实际烟气量的计算 ',
#         'p': ['Alpha:过剩空气系数', 'VO:燃料燃烧所需理论空气量', 'QL:燃料应用基低位发热值'], 'res': ['Qy:实际烟气量 '],
#         'js': ['1.11*QL/4187+(Alpha-1)*VO'], 'py': ['1.11*QL/4187+(Alpha-1)*VO']}
# f007 = {'keywords': '理论空气,需要量', 'desc': '理论空气需要量（VO）的计算 ', 'title': '理论空气需要量（VO）的计算 ', 'p': ['QL:燃料应用基低位发热值'],
#         'res': ['VO:燃料燃烧所需理论空气量 '], 'js': ['0.260*QL/1000-0.25'], 'py': ['0.260*QL/1000-0.25']}
# f032 = {'keywords': '点声源,球面,衰减', 'desc': '点声源球面衰减规律', 'title': '点声源球面衰减规律', 'p': ['r:点声源到受声点距离'],
#         'res': ['DL1:距离增加产生衰减值 '], 'js': ['10* Math.log(1/(4*pi*r**2))'], 'py': ['10* math.log(1/(4*pi*r**2))']}
#
# f033 = {'keywords': '点声源,衰减值', 'desc': '距离点声源r1~r2处的衰减值', 'title': '距离点声源r1~r2处的衰减值', 'p': ['r1:', 'r2:'],
#         'res': ['DeltaL1:距离点声源r1~r2处的衰减值 '], 'js': ['20* Math.log(r1/r2)'], 'py': ['20* math.log(r1/r2)']}
f056 = {
    'keywords': '河流,混合模式',
    'desc': '河流完全混合模式 ',
    'title': '河流完全混合模式 ',
    'p': ['cp:污染物排放浓度', 'ch:河流上游污染物浓度', 'Qp:废水排放量', 'Qh:河流流量'],
    'res': ['c:污染物浓度 '],
    'js': ['(cp*Qp+ch*Qh)/(Qp+Qh)'],
    'py': ['(cp*Qp+ch*Qh)/(Qp+Qh)'],
}
f055 = {
    'keywords': '河流,一维,稳态',
    'desc': '河流一维稳态模式 ',
    'title': '河流一维稳态模式 ',
    'p': [
        'c0:计算初始点污染物浓度',
        'K1:耗氧系数',
        'K3:沉降系数',
        'u:河流流速',
        'x:从计算初始点到下游计算断面的距离',
    ],
    'res': ['c:计算断面污染物浓度 '],
    'js': ['c0*Math.exp(-(K1+K3)*(x/(86400*u)))'],
    'py': ['c0*Math.exp(-(K1+K3)*(x/(86400*u)))'],
}
f040 = {
    'keywords': '等标排放量',
    'desc': '等标排放量 ',
    'title': '等标排放量 ',
    'p': ['Qi:污染物检测值', 'Coi:第i类污染物环境空气质量标准'],
    'res': ['Pi:第i类污染物单位时间排放量 '],
    'py': ['Qi/Coi*1000000000'],
}
# f034 = {'keywords': '线声源,衰减', 'desc': '线声源衰减规律', 'title': '线声源衰减规律', 'p': ['r:线声源到受声点距离', 'l:线声源长度'],
#         'res': ['DL1:线声源衰减规律 '], 'js': ['10* Math.log(1/(2*pi*r*l))'], 'py': ['10* math.log(1/(2*pi*r*l))']}
# f013 = {'keywords': '高斯模型,标准型', 'desc': '高斯模型标准型 ', 'title': '高斯模型标准型 ',
#         'p': ['Q:', 'Pi:', 'u:', 'Dy:', 'Dz:', 'y:', 'z:'], 'res': ['C:'],
#         'js': ['(Q/(2*Pi*u*Dy*Dz))*Math.exp(-(1/2)*(((y**2)/(Dy**2))+((z**2)/(Dz**2))))'],
#         'py': ['(Q/(2*Pi*u*Dy*Dz))*math.exp(-(1/2)*(((y**2)/(Dy**2))+((z**2)/(Dz**2))))']}
f042 = {
    'keywords': '环评,锅炉耗煤量',
    'desc': '锅炉耗煤量 ',
    'title': '锅炉耗煤量 ',
    'p': [
        'D:锅炉每小时的产汽量',
        'Q:煤的低位发热值',
        'Eta:锅炉的热效率',
        'i1:锅炉在某工作压力下，饱和蒸汽热焓',
        'i2:锅炉给水热焓，一般计算给水温度20℃则i2=20',
    ],
    'res': ['G:锅炉燃煤量 '],
    'js': ['(D*(i1-i2))/(Q*Eta)'],
    'py': ['(D*(i1-i2))/(Q*Eta)'],
}
# f008 = {'keywords': '环评,烟气量计算', 'desc': '实际烟气量的计算 ', 'title': '实际烟气量的计算 ',
#         'p': ['Alpha:过剩空气系数', 'VO:燃料燃烧所需理论空气量', 'QL:燃料应用基低位发热值'], 'res': ['Qy:实际烟气量 '],
#         'js': ['1.04*QL/4187+0.54+1.0161*(Alpha-1)*VO'], 'py': ['1.04*QL/4187+0.54+1.0161*(Alpha-1)*VO']}
#
# f016 = {'keywords': '扩散参数', 'desc': '扩散参数 ', 'title': '扩散参数 ', 'p': ['x:距污染源下风向的距离'], 'res': ['Dx: ', 'Dy:'],
#         'js': ['y1*Math.pow(x,a1)', 'y2*Math.pow(x,a2)'], 'py': ['y1*math.pow(x,a1)', 'y2*math.pow(x,a2)']}
#
# f010 = {'keywords': '环评,烟气量计算', 'desc': '实际烟气量的计算 ', 'title': '实际烟气量的计算 ',
#         'p': ['Alpha:过剩空气系数', 'VO:燃料燃烧所需理论空气量', 'QL:燃料应用基低位发热值'], 'res': ['Qy:实际烟气量 '],
#         'js': ['0.725*QL/4187+1.0+(Alpha-1)*VO'], 'py': ['0.725*QL/4187+1.0+(Alpha-1)*VO']}
#
# f004 = {'keywords': '理论空气,需要量', 'desc': '理论空气需要量（VO）的计算 ', 'title': '理论空气需要量（VO）的计算 ', 'p': ['QL:燃料应用基低位发热值'],
#         'res': ['VO:燃料燃烧所需理论空气量 '], 'js': ['QL/4140+0.455'], 'py': ['QL/4140+0.455']}

# 公式有问题
# f053 = {'keywords': '环评,大气,环境容量',
#         'desc': '大气环境容量 ',
#         'title': '大气环境容量 ',
#          'p': ['Si:第i个功能区的面积',
#                'Cib:第i个功能区污染物背景浓度',
#                'A:总量控制系数'],
#          'res': ['Ci:第i个功能区污染物控制浓度 ',
#                  'Ai:各个功能区总量控制系数 ',
#                  'Qai:各功能区排放总量 '],
#          'js': ['Cio-Cib',
#                 'A*Ci', 'Ai*(Si/Math.sqrt(S))'],
#         'py': ['Cio-Cib',
#                'A*Ci',
#                'Ai*(Si/math.sqrt(S))']
# }


#
# f015 = {'keywords': '轴向模型', 'desc': '轴向模型 ', 'title': '轴向模型 ',
#         'p': ['Q:单位时间排放量，mg/s',
#               'Pi:参数',
#               'u:排气筒出口处平均风速',
#               'He:排气筒有效高度Dy—垂直于平均风向的水平横向扩散参数，m',
#               'Dz:铅直扩散参数，m；',
#               'Dy:γ1Xα1',
#               'Dz:γ2Xα2 \u3000为取样时间0.5h时。Dy1 =Dy0.5（τ1／τ0.5）q \u3000时间修正。1h时q取0.3。',
#               'A1:横向扩散参数回归指数；',
#               'A2:铅直扩散参数回归指数；',
#               'G1:横向扩散参数回归指数；',
#               'G2:铅直扩散参数回归指数；',
#               'X:距排气筒下风向水平距离。'],
#         'res': ['C:结果'],
#         'js': ['(Q/(Pi*u*Dy*Dz))*math.exp(-He**2/(2*Dz**2))'], 'py': ['(Q/(Pi*u*Dy*Dz))*math.exp(-He**2/(2*Dz**2))']}
# f012 = {'keywords': '大气,风速计算', 'desc': '风速计算 ', 'title': '风速计算 ',
#         'p': ['z2:烟囱出口处的高度', 'u1:气象站z1高度出的平均风速', 'z1:测风仪所在高度', 'm:指数'], 'res': ['u2:烟囱出口处平均速度 '],
#         'js': ['u1*Math.pow((z2/z1),m)'], 'py': ['u1*math.pow((z2/z1),m)']}

# f059 = {'keywords': '单项,水质参数,评价', 'desc': '单项水质参数评价', 'title': '单项水质参数评价', 'p': ['C1:', 'Csi: '],
#         'res': ['S1:', 'S2:', 'S3:', 'S4:', 'S5:', 'S6:'],
#         'js': ['C1/Csi', 'Math.abs(DOf-DOj)/(DOf-DOs)', '10-9*(DOj/DOs)', '468/(31.6+T)', '(7.0-pHj)/(7.0-pHsd)',
#                '(pHj-7.0)/(pHsu-7.0)'],
#         'py': ['C1/Csi', 'math.abs(DOf-DOj)/(DOf-DOs)', '10-9*(DOj/DOs)', '468/(31.6+T)', '(7.0-pHj)/(7.0-pHsd)',
#                '(pHj-7.0)/(pHsu-7.0)']}

f059 = {
    'keywords': '单项,水质参数,评价',
    'desc': '单项水质参数评价',
    'title': '单项水质参数评价',
    'p': ['C1:', 'Csi: '],
    'res': [
        'S1:评价结果',
    ],
    'js': [
        'C1/Csi',
        'Math.abs(DOf-DOj)/(DOf-DOs)',
        '10-9*(DOj/DOs)',
        '468/(31.6+T)',
        '(7.0-pHj)/(7.0-pHsd)',
        '(pHj-7.0)/(pHsu-7.0)',
    ],
    'py': ['C1/Csi'],
}
#

f054 = {
    'keywords': '环评,水质参数,排序指标',
    'desc': '水质参数的排序指标ISE ',
    'title': '水质参数的排序指标ISE ',
    'p': [
        'Cp:污染物排放浓度',
        'Ch:河流上游污染物浓度(<span class="red">≠Cp</span>)',
        'Qp:废水排放量',
        'Qh:河流流量',
    ],
    'res': ['ISE:水质参数的排序指标 '],
    'js': ['(Cp*Qp)/((Cp-Ch)*Qh)'],
    'py': ['(Cp*Qp)/((Cp-Ch)*Qh)'],
}
#
f027 = {
    # 环评报告中水、气等的计算方法统计_dkz.docx
    'title': '锅炉烟气源强在线计算工具',
    'desc': '锅炉烟气、烟尘计算，注意计算中百分比等皆用小数表示。<br/>脱硫效率，麻石水浴、水膜按40%计，石灰石-石膏法按90%计。',
    'res': [
        'QSO2:锅炉烟气',
        'Q:锅炉烟尘',
        # 'Qi:'
    ],
    'p': [
        'G: 耗煤量',
        'S: 煤中含硫量',
        'Etas: 脱硫效率',
        'A: 煤中灰分',
        'EtaA: 煤中飞灰占灰分的百分比。',
        'Eta: 除尘效率',
        # 'QN:废气体积流量'
    ],
    'py': [
        'G*2*0.8*S*(1-Etas)',
        'G*A*EtaA*(1-Eta)',
        # 'QN*Ci*math.pow(10,-6)'
    ],
    'js': ['G*2*0.8*S*(1-Etas)', 'G*A*EtaA*(1-Eta)', 'QN*Ci*Math.pow(10,-6)'],
    'keywords': '源强,锅炉,烟气,在线计算,在线计算器',
}
#
# f058 = {
#     'title': '抬升高度公式',
#     'desc': '抬升高度公式',
#     'res': [
#         'DH1:',
#         'DH2:',
#         'DH3:',
#         'DH4:',
#         'DH5:',
#     ],
#     'p': [
#         'Qh: ',
#         'Hs: ',
#         'Us: ',
#         'VsD: ',
#         'U: '
#     ],
#     'py': [
#         'G*2*0.8*S*(1-Etas)',
#         'G*A*EtaA*(1-Eta)',
#         'QN*Ci*math.pow(10,-6)'
#     ],
#     'js': [
#         '1.303*math.pow(Qh,(1/3))*math.pow(Hs,(2/3))/Us',
#         '1.427*math.pow(Qh,(1/3))*math.pow(Hs,(2/3))/Us',
#         '0.292*math.pow(Qh,(3/5))*math.pow(Hs,(2/5))/Us',
#         '0.332*math.pow(Qh,(3/5))*math.pow(Hs,(2/5))/Us',
#         '2*(1.5*VsD+0.01*Qh)/U'
#     ],
#     'keywords': '抬升,高度,公式'
#
#
# }
#
#
# #######################################
# ## Dili
# ##########################################
#
# f038 = {'js': ['(Jjd-Yjd)*1/15+Ydfs'], 'title': '地理计算_地方时', 'desc': '地方时', 'res': ['Jdfs:甲地方时'],
#         'p': ['Jjd:甲经度', 'Yjd:乙经度', 'Ydfs:乙地方时'], 'py': ['(Jjd-Yjd)*1/15+Ydfs'], 'keyworks': '地理,地方时'}
# f040 = {'js': ['(R-datetime.datetime(2014, 6, 22))*(23.4333*4/365)'], 'title': '地理计算_某日 ( R) 太阳直射点的地理纬度位置',
#         'desc': '某日 ( R) 太阳直射点的地理纬度位置', 'res': ['Dw:地理纬度位置'], 'p': ['R:某日', '23° 26′:太阳直射点的地理纬度位置 '],
#         'py': ['(R-datetime.datetime(2014, 6, 22))*(23.4333*4/365)'], 'keywords': '地理,纬度,太阳直射点'}
# f053 = {'js': ['Bfy/Rk'], 'title': '人口总负担系数', 'desc': '人口总负担系数', 'res': ['Zxs:人口总负担系数'],
#         'p': ['Bfy:被抚养人口指 0~14 岁和 65 岁以上的人口', 'Rk:15～64 岁人口'], 'py': ['Bfy/Rk'], 'keywords': '人口,负担系数'}
# f048 = {'js': ['Crk/Zrk'], 'title': '城市人口比重', 'desc': '城市人口比重', 'res': ['Bz:城市人口比重'], 'p': ['Crk:城市总人口', 'Zrk:总人口'],
#         'py': ['Crk/Zrk'], 'keywords': '人口,比重'}
# f050 = {'js': ['Srk/Prk'], 'title': '死亡率', 'desc': '死亡率', 'res': ['Swl:死亡率'], 'p': ['Srk:死亡人数', 'Prk:平均人口数'],
#         'py': ['Srk/Prk'], 'keywords': '死亡率'}
# f047 = {'js': ['Jll+Zfl'], 'title': '外流区的降水量', 'desc': '外流区的降水量', 'res': ['Jsl:降水量'], 'p': ['Jll:径流量', 'Zfl:蒸发量'],
#         'py': ['Jll+Zfl'], 'keywords': '外流区,降水量'}
# f056 = {'js': ['Zrk/Zmj', 'Zrk/Zgd', 'Ssmd/Slmd'], 'title': '人口算术密度、 人口生理密度、 耕地比重', 'desc': '人口算术密度、 人口生理密度、 耕地比重',
#         'res': ['Ssmd:人口算术密度', 'Slmd:人口生理密度', 'Gdbz:耕地比重'], 'p': ['Zrk:总人口 ', 'Zmj:总面积', 'Zgd:可耕地面积'],
#         'py': ['Zrk/Zmj', 'Zrk/Zgd', 'Ssmd/Slmd'], 'keywords': '人口,算术密度,生理密度,耕地比重'}
# f044 = {'js': ['(n-1)*h'], 'title': '陡崖的相对高度', 'desc': '陡崖的相对高度', 'res': ['H:相对高度'], 'p': ['h:等高距', 'n:等高线条数'],
#         'py': ['(n-1)*h'], 'keywords': '陡崖,相对高度'}
# f045 = {'js': ['Tj/Sj'], 'title': '比例尺', 'desc': '比例尺', 'res': ['Blc:比例尺'], 'p': ['Tj:图上距离', 'Sj:实际距离'],
#         'py': ['Tj/Sj'], 'keywords': '比例尺'}
# f042 = {'js': ['90-Ds'], 'title': '地理计算_极昼极夜的范围', 'desc': '极昼极夜的范围', 'res': ['Fw:极昼极夜的范围'], 'p': ['Ds:太阳直射点的度数'],
#         'py': ['90-Ds'], 'keywords': '地理,极昼,极夜'}
# f043 = {'js': ['(n-1)*h'], 'title': '等高线图中两点的相对高度', 'desc': '等高线图中两点的相对高度', 'res': ['H:相对高度'],
#         'p': ['h:等高距', 'n:等高线条数'], 'py': ['(n-1)*h'], 'keywords': '等高线,相对高度'}
# f055 = {'js': ['Cz/Gd'], 'title': '人口耕地密度', 'desc': '人口耕地密度', 'res': ['Md:人口耕地密度'], 'p': ['Cz:该地常住人口数 ', 'Gd:该地耕地面积'],
#         'py': ['Cz/Gd'], 'keywords': '人口,耕地,密度'}
# f046 = {'js': ['Tj/Blc'], 'title': '实际距离', 'desc': '实际距离', 'res': ['Sj:实际距离'], 'p': ['Tj:图上距离', 'Blc:比例尺'],
#         'py': ['Tj/Blc'], 'keywords': '实际距离'}
# f049 = {'js': ['Crk/Zrk'], 'title': '出生率', 'desc': '出生率', 'res': ['Csl:出生率'], 'p': ['Ncs:年内出生人数', 'Nrk:年平均人口数'],
#         'py': ['Crk/Zrk'], 'keywords': '出生率'}
# f054 = {'js': ['Cz/Td'], 'title': '人口密度', 'desc': '人口密度', 'res': ['Md:人口密度'],
#         'p': ['Cz:该地常住人口 ( 人) ', 'Td:该地土地面积 ( 平方千米)'], 'py': ['Cz/Td'], 'keywords': '人口,密度'}
# f052 = {'js': ['Zcs/Yrs'], 'title': '生育率', 'desc': '生育率', 'res': ['Csl:生育率'],
#         'p': ['Zcs:总出生数', 'Yrs:育龄妇女 ( 15 至 49 周岁) 人数'], 'py': ['Zcs/Yrs'], 'keywords': '生育率'}
# f051 = {'js': ['(Crs-Srs)/Njs*1000/1000', 'Csl-Swl'], 'title': '自然增长率', 'desc': '自然增长率',
#         'res': ['Zzl:自然增长率', 'Zzl2:自然增长率'], 'p': ['Crs:本年出生人数', 'Srs:本年死亡人数', 'Njs:年平均人数', 'Csl:人口出生率', 'Swl:人口死亡率'],
#         'py': ['(Crs-Srs)/Njs*1000/1000', 'Csl-Swl'], 'keywords': '自然增长率'}
# f039 = {'js': ['90-(Dw-Tw)'], 'title': '地理计算_正午太阳高度', 'desc': '正午太阳高度', 'res': ['Gd:正午太阳高度'],
#         'p': ['Dw:当地纬度', 'Tw:太阳直射点纬度'], 'py': ['90-(Dw-Tw)'], 'keywords': '地理,太阳,高度'}
# f041 = {'js': ['12-Zc/2 ', '12+Zc/2'], 'title': ' 地理计算_日出、 日落时刻', 'desc': ' 日出、 日落时刻', 'res': ['Rc:日出时刻', 'Rl:日落时刻'],
#         'p': ['Zc:昼长'], 'py': ['12-Zc/2 ', '12+Zc/2'], 'keywords': '地理,日出,日落'}
# f037 = {'js': ['Jqs-Yqs+Ysq'], 'title': '地理计算_区时', 'desc': '区时', 'res': ['Jsq:甲时区'],
#         'p': ['Jqs:甲区时', 'Yqs:乙区时', 'Ysq:乙时区'], 'py': ['Jqs-Yqs+Ysq'], 'keywords': '地理,区时'}
# f036 = {'js': ['Jd/15'], 'title': '地理计算_某经度所在的时区计算', 'desc': '某经度所在的时区计算', 'res': ['Sq:时区'], 'p': ['Jd:经度'],
#         'py': ['Jd/15'], 'keywords': '地理,经度,时区'}


e001 = {
    'title': '立方体面积计算',
    'keywords': '立方体,体积，面积',
    'desc': '立方体面积计算',
    'p': [
        'a:棱',
    ],
    'res': ['res1:立方体表面积', 'res2:立方体侧表面积', 'res3:立方体体积'],
    'py': ['6*a *a', '4*a * a', 'a* a * a'],
}

# Todo:  这个与现有的重复了:  ca80
# e002 = {
#     'title': '长方体面积计算',
#     'keywords': '长方体,体积，面积,体对角线',
#     'desc': '长方体面积计算',
#     'p': ['a:长',
#           'b:宽',
#           'h:高',
#           ],
#     'res': ['res1:长方体表面积',
#             'res2:长方体侧表面积',
#             'res3:长方体体积',
#             'res4:长方体对角线'],
#     'py': ['2*(a*b+a*h+b*h)',
#            '2*h*(a+b)',
#            'a*b*h',
#            '(a**2+b**2+h**2)**(1/2)'],
# }

e003 = {
    'title': '三棱柱面积计算',
    'keywords': '三棱柱,体积，面积',
    'desc': '三棱柱面积计算',
    'p': [
        'a:边长1',
        'b:边长2',
        'c:边长3',
        'h:高',
        'F:底面积',
    ],
    'res': [
        'res1:三棱柱长方体表面积',
        'res2:三棱柱侧表面积',
        'res3:三棱柱体积',
    ],
    'py': [
        '(a+b+c)*h+2*F',
        '(a+b+c)*h',
        'F*h',
    ],
}

e004 = {
    'title': '棱锥面积计算',
    'keywords': '棱锥,体积，面积',
    'desc': '棱锥面积计算',
    'p': [
        'f:一个组合三角形的面积',
        'n:组合三角形的个数',
        'F:底面积',
        'h:高',
    ],
    'res': [
        'res1:棱锥表面积',
        'res2:长棱锥侧表面积',
        'res3:棱锥体积',
    ],
    'py': [
        'n*f+F',
        'n*f',
        '(1/3)*F*h',
    ],
}

e005 = {
    'title': '棱台面积计算',
    'keywords': '棱台,体积，面积',
    'desc': '棱台面积计算',
    'p': [
        'a:一个组合梯形的面积',
        'n:组合梯形的个数',
        'F1:平行地面的面积1',
        'F2:平行地面的面积2',
        'h:底面间的高',
    ],
    'res': [
        'res1:棱台表面积',
        'res2:棱台侧表面积',
        'res3:棱台体积',
    ],
    'py': [
        'a*n+F1+F2',
        'a*n',
        '(1/3)*h*(F1+F2+ Math.sqrt(F1*F2))',
    ],
}

e006 = {
    'title': '圆柱和空心圆柱面积计算',
    'keywords': '圆柱和空心圆柱,体积，面积',
    'desc': '圆柱和空心圆柱面积计算',
    'p': [
        'R:外半径',
        'r:内半径',
        't:柱壁厚度',
        'p:平均半径',
        'h:高度',
    ],
    'res': [
        'res1:圆柱表面积',
        'res2:圆柱侧表面积',
        'res3:圆柱体积',
        'res4:空心圆柱表面积',
        'res5:空心圆柱侧表面积',
        'res6:空心圆柱体积',
    ],
    'py': [
        'Math.PI * 2 * R * (R+h)',
        'Math.PI * 2 * h * R',
        'Math.PI * R * R * h',
        'Math.PI * 2 * ( R + r ) * h + Math.PI * 2 * ( R * R  - r * r )',
        'Math.PI * 2 * h * ( r + R )',
        'Math.PI * 2 * R * p * t * h',
    ],
}

e007 = {
    'title': '斜线直圆柱面积计算',
    'keywords': '斜线直圆柱,体积，面积',
    'desc': '斜线直圆柱面积计算',
    'p': [
        'h1:最小高度',
        'h2:最大高度',
        'a: 角度',
        'r:底面半径',
    ],
    'res': [
        'res1:斜线直圆柱表面积',
        'res2:斜线直圆柱侧表面积',
        'res3:斜线直圆柱体积',
    ],
    'py': [
        'Math.PI*r*(h1+h2)+Math.PI+ r * r *(1+(1/ Math.cos(a)))',
        'Math.PI*r*(h1+h2)',
        'Math.PI*r * r*((h1+h2)/2)',
    ],
}

e008 = {
    'title': '直圆锥面积计算',
    'keywords': '直圆锥,体积，面积，母线长',
    'desc': '直圆锥面积计算',
    'p': [
        'l:母线长',
        'h:高',
        'r:底面半径',
        'S1:直圆锥侧表面积',
    ],
    'res': [
        'res1:母线长',
        'res2:直圆锥侧表面积',
        'res3:直圆锥表面积积',
        'resv4:直圆锥体积',
    ],
    'py': [
        'Math.sqrt(r*r+h*h)',
        'Math.PI*r*l',
        'Math.PI * r * r+S1',
        'Math.PI*(1/3)* r * r * h',
    ],
}

e009 = {
    'title': '圆台面积计算',
    'keywords': '圆台,体积，面积，母线长',
    'desc': '圆台面积计算',
    'p': [
        'l:母线长',
        'h:高',
        'R:底面半径',
        'r:底面半径',
        'S1:圆台侧表面积',
    ],
    'res': [
        'res1:母线长',
        'res2:圆台侧表面积',
        'res3:圆台表面积',
        'resv4:圆台体积',
    ],
    'py': [
        ' Math.pow(((R * R-r * r)+ h * h), (1/2))',
        'Math.PI*(R+r)',
        'Math.PI*(r * r+R * R)+S1',
        'Math.PI*(1/3)*h*(R * R +R*r+r * r )',
    ],
}

e010 = {
    'title': '球面积计算',
    'keywords': '球，表面积，体积',
    'desc': '球面积计算',
    'p': [
        'r:半径',
    ],
    'res': [
        'res1:球的表面积',
        'res2:球的体积',
    ],
    'py': [
        'Math.PI*4*r * r',
        'Math.PI*(4/3) * r * r',
    ],
}

e011 = {
    'title': '球扇形面积计算',
    'keywords': '球扇形，表面积，体积',
    'desc': '球扇形面积计算',
    'p': [
        'r:球半径',
        'd1:弓形底圆直径',
        'h:弓形高',
    ],
    'res': [
        'res1:球扇形的表面积',
        'res2:球扇形的体积',
    ],
    'py': [
        'Math.PI*(1/2)*r*(4*h+d1)',
        'Math.PI*(2/3)* r * r *h',
    ],
}

e012 = {
    'title': '球缺面积计算',
    'keywords': '球缺,体积，面积，曲面面积',
    'desc': '球缺面积计算',
    'p': [
        'h:球缺的高',
        # 'd:平切圆直径',
        'r:球缺半径',
    ],
    'res': [
        'res1:平切圆直径平方',
        'res2:球缺表面积',
        'res3:曲面面积',
        'resv4:球缺体积',
    ],
    'py': [
        '4*h*(2*r-h)',
        'Math.PI*(4*r-h)',
        'Math.PI*2*r*h',
        'Math.PI*h * h *(r-(h/3))',
    ],
}

e013 = {
    'title': '圆环体面积计算',
    'keywords': '圆环体,体积，面积',
    'desc': '圆环体面积计算',
    'p': [
        'p:圆球体平均直径',
        'j:圆环体截面直径',
    ],
    'res': [
        'res1:圆环体体积',
        'res2:圆环体表面积',
    ],
    'py': [
        '(Math.pow(Math.PI,2)*p*Math.pow(j,2))/4',
        ' Math.pow(Math.PI,2)*p*j ',
    ],
}

e014 = {
    'title': '球带体积计算',
    'keywords': '球带体,体积，面积',
    'desc': '球带体面积计算',
    'p': [
        'h:腰高',
        'R:球半径',
        'r1:底面半径',
        'r2:底面半径',
        'h1:球心O至带底圆心O1的距离',
    ],
    'res': [
        'res1:球带体侧表面积',
        'res2:球缺表面积',
        'resv3:球带体体积',
    ],
    'py': [
        'Math.PI*R*h*2',
        'Math.PI*R*h*2+Math.PI*(r1* r1 +r2* r2)',
        'Math.PI*(h/6)*(3*r1* r1 +3*r2* r2 +h * h)',
    ],
}

e015 = {
    'title': '桶形面积计算',
    'keywords': '桶形，体积',
    'desc': '桶形面积计算',
    'p': [
        'D:中间断面直径',
        'd:底直径',
        'l:桶高',
    ],
    'res': [
        'res1:抛物线形桶体积',
        'res2:圆形桶体积',
    ],
    'py': [
        'Math.PI*(l/15)*(2*D* D +D*d+(3/4)* d * d)',
        'Math.PI*(l/12)*(2 * D * D + d * d)',
    ],
}

e016 = {
    'title': '椭球体面积计算',
    'keywords': '椭球体，体积,表面积',
    'desc': '椭球体面积计算',
    'p': [
        'a:半轴1',
        'b:半轴2',
        'c:半轴3',
    ],
    'res': [
        'res1:椭球体表面积',
        'res2:椭球体体积',
    ],
    'py': [
        '2* Math.pow(2, (1/2)) *b*  Math.pow((a* a +b* b ), (1/2))',
        'Math.PI*(4/3)*a*b*c',
    ],
}

e017 = {
    'title': '交叉圆柱体体积计算',
    'keywords': '交叉圆柱体，体积',
    'desc': '交叉圆柱体体积计算',
    'p': [
        'r:圆柱半径',
        'l1:圆柱长1',
        'l2:圆柱长2',
    ],
    'res': [
        'res1:交叉圆柱体体积',
    ],
    'py': [
        'Math.PI * r *r *(l1+l2-(2/3)*r)',
    ],
}

#  有问题
# e018 = {
#     'title': '正方形面积计算',
#     'keywords': '正方形，面积',
#     'desc': '正方形面积计算',
#     'p': ['a:边长',
#           'b:对角线',
#     ],
#     'res': ['res1:正方形面积',
#             'res2:正方形边长',
#             'res3:正方形对角线',
#     ],
#     'py': ['a* a ',
#            'F**(1/2)',
#            '1.414*F**(1/2)',
#     ],
# }

e019 = {
    'title': '长方形面积计算',
    'keywords': '长方形，面积,对角线',
    'desc': '长方形面积计算',
    'p': [
        'a:短边',
        'b:长边',
        # 'd:对角线',
    ],
    'res': [
        'res1:长方形面积',
        'res2:长方形对角线',
    ],
    'py': [
        'a*b',
        'Math.pow((a* a +b* b ), (1/2))',
    ],
}

# e020 = {
#     'title': '平行四边形面积计算',
#     'keywords': '平行四边形，面积',
#     'desc': '平行四边形面积计算',
#     'p': ['a:棱边1', 'b:棱边2',
#           'h:对边间的距离',
#           ],
#     'res': ['res1:平行四边形面积',
#             ],
#     'py': ['a*b*math.sin(a)',
#            ],
# }

e020 = {
    'title': '平行四边形面积计算',
    'keywords': '平行四边形，面积',
    'desc': '平行四边形面积计算',
    'p': [
        'a:底边',
        'h:高度',
    ],
    'res': [
        'res1:平行四边形面积',
    ],
    'py': [
        'a * h',
    ],
}

e021 = {
    'title': '任意四边形面积计算',
    'keywords': '任意四边形，面积',
    'desc': '任意四边形面积计算',
    'p': [
        'd1:对角线1',
        'd2:对角线2',
        'a:对角线夹角',
    ],
    'res': [
        'res1:平行四边形面积',
    ],
    'py': [
        '((d1*d2)/2)* Math.sin(a)',
    ],
}

e022 = {
    'title': '正多边形面积计算',
    'keywords': '正多边形，面积',
    'desc': '正多边形面积计算',
    'p': [
        'r:内切圆半径',
        'R:外接圆半径',
        'a:边',
        'n:边数',
        'p:周长',
    ],
    'res': [
        'res1:边长',
        'res2:周长',
        'res3:正多边形面积',
    ],
    'py': [
        '2* Math.pow((R* R - r* r ),(1/2))',
        'a*n',
        '(p*r)/2',
    ],
}

# e023 = {
#     'title': '菱形面积计算',
#     'keywords': '菱形，面积',
#     'desc': '菱形面积计算',
#     'p': ['d1:对角线1', 'd2:对角线2',
#           'a:边',
#           'b:角',
#           ],
#     'res': ['res1:菱形面积',
#             ],
#     'py': ['a* a *math.sin(b)',
#
#            ],
# }

# e024 = {
#     'title': '梯形面积计算',
#     'keywords': '梯形，面积',
#     'desc': '梯形面积计算',
#     'p': ['a:上底边长',
#           'b:下底边长',
#           'h:高',
#           ],
#     'res': ['res1:梯形面积',
#             ],
#     'py': ['(a+b)/2*h',
#
#            ],
# }

# e025 = {
#     'title': '圆面积计算',
#     'keywords': '圆，面积,周长',
#     'desc': '圆面积计算',
#     'p': ['r:半径',
#           'd:直径',
#           'p:圆周长',
#           ],
#     'res': ['res1:圆周长',
#             'res2:圆面积',
#             ],
#     'py': ['Math.PI*d',
#            'Math.PI*r * r',
#
#            ],
# }

e026 = {
    'title': '抛物线形面积计算',
    'keywords': '抛物线形，面积,曲线长',
    'desc': '抛物线形面积计算',
    'p': [
        'b:底边',
        'h:高',
        'l:曲线长',
        'S:抛物线内接三角形面积',
    ],
    'res': [
        'res1:曲线长',
        'res2:抛物线面积',
    ],
    'py': [
        'Math.pow((b* b +1.3333*h* h ), (1/2))',
        '(4/3)*h',
    ],
}

# e027 = {
#     'title': '等多边形面积计算',
#     'keywords': '等多边形，面积',
#     'desc': '圆等多边形面积计算',
#     'p': ['a:边长',
#           'ki:系数i指多边形的边数',
#           'k3:0.433',
#           'k4:1.000',
#           'k5:1.720',
#           'k6:2.598',
#           'k7:3.614',
#           'k8:4.828',
#           'k9:6.182',
#           'k10:7.694',
#     ],
#     'res': ['res1:等多边形周长',
#     ],
#     'py': ['k*a * a',
#     ],
# }

# Todo: 有问题
e028 = {
    'title': '内接三角形计算',
    'keywords': '内接三角形，面积,外接圆半径',
    'desc': '内接三角形计算',
    'p': [
        'a:三角形边长1',
        'b:三角形三边长2',
        'c:三角形三边长3',
        'p:三边和之半',
        'R:三角形外接圆半径',
        's:三角形面积',
    ],
    'res': [
        'res1:三角形面积',
        'res2:三角形外接圆半径',
    ],
    'py': [
        'Math.pow(p*(p-a)*(p-b)*(p-c), (1/2))',
        '(a*b*c)/Math.pow(4*(p*(p-a)*(p-b)*(p-c)), (1/2))',
    ],
}

e029 = {
    'title': '圆片面积计算',
    'keywords': '圆片，面积',
    'desc': '圆片面积计算',
    'p': [
        'a:圆心角',
        'r:小圆半径',
        'R:大圆半径',
        's:圆片面积',
    ],
    'res': [
        'res1:圆片面积',
    ],
    'py': [
        'Math.PI*a/(360)*(R * R-r*r)',
    ],
}

e030 = {
    'title': '外切三角形计算',
    'keywords': '外切三角形，面积,内切圆半径',
    'desc': '外切三角形计算',
    'p': [
        'a:三角形三边长1',
        'b:三角形三边长2',
        'c:三角形三边长3',
    ],
    'res': [
        'res1:三角形面积',
        'res2:三角形内切圆半径',
    ],
    'py': [
        'Math.pow((p*(p-a)*(p-b)*(p-c)), (1/2))',
        '(((p-a)*(p-b)*(p-c))/p)',
    ],
}

e031 = {
    'title': '四分圆面积计算',
    'keywords': '四分圆，面积',
    'desc': '四分圆面积计算',
    'p': [
        'r:小圆半径',
        'c:弦长',
        's:四分圆面积',
    ],
    'res': [
        'res1:四分圆面积',
    ],
    'py': [
        'Math.PI * r*r / 4',
    ],
}

e032 = {
    'title': '直角三角形计算',
    'keywords': '直角三角形，面积，斜边',
    'desc': '直角三角形计算',
    'p': [
        'a:直角边1',
        'b:直角边2',
    ],
    'res': [
        'res1:直角三角形面积',
        'res2:直角三角形的斜边',
        'res3:斜边的平方',
    ],
    'py': [
        '(1/2)*a*b',
        'Math.sqrt(a*a+b*b)',
        'a*a+b*b',
    ],
}

# e033 = {
#     'title': '锐角三角形计算',
#     'keywords': '锐角三角形，面积，边长，高',
#     'desc': '锐角三角形计算',
#     'p': ['h:高',
#
#           'a:边长1',
#           'b:边长2',
#           'c:边长3',
#           'e:底边垂足到底边一端点的距离',
#
#     ],
#     'res': ['res1:边长',
#             'res2:高',
#             'res3:锐角三角形面积',
#     ],
#     'py': ['(a**2+b**2-2*b*c)**(1/2)',
#            '(a**2-e**2)**(1/2)',
#            '(b*h)/2',
#     ],
# }

# e034 = {
#     'title': '钝角三角形计算',
#     'keywords': '钝角三角形，面积，边长，高',
#     'desc': '钝角三角形计算',
#     'p': ['h:高',
#
#           'a:边长1',
#           'b:边长2',
#           'c:边长3',
#           'e:底边垂足到底边一端点的距离',
#
#     ],
#     'res': ['res1:边长',
#             'res2:高',
#             'res3:钝角三角形面积',
#     ],
#     'py': ['(a**2+b**2+2*b*e)**(1/2)',
#            '(a**2-e**2)**(1/2)',
#            '(b*h)/2',
#     ],
# }

e035 = {
    'title': '偶角面积计算',
    'keywords': '偶角，面积',
    'desc': '偶角面积计算',
    'p': [
        'r:半径',
        'c:弦长',
    ],
    'res': [
        'res1:偶角面积',
    ],
    'py': [
        '((4-Math.PI)/4)*r * r',
    ],
}

e036 = {
    'title': '螺旋计算',
    'keywords': '螺线，螺距,螺线长',
    'desc': '螺线计算',
    'p': [
        'n:螺线的数目',
        'p:螺距',
        'l:螺线长',
        'd: 参数',
    ],
    'res': [
        'res1:螺距',
        'res2:螺线长',
    ],
    'py': [
        'Math.sqrt((l*l /n* n )-(Math.PI* Math.PI * d * d))',
        'n* Math.sqrt(p*p +(Math.PI*d)*(Math.PI*d))',
    ],
}

e048 = {
    'title': '截头直圆锥计算',
    'keywords': '截头直圆锥，侧表面积,表面积，体积',
    'desc': '截头直圆锥计算',
    'p': [
        'h:高',
        'D:下底直径',
        'b:上底直径',
        'R:下底半径',
        'r:上底半径',
        'l:母线长',
    ],
    'res': [
        'res1:侧表面积',
        'res2:表面积',
        'res3:体积',
    ],
    'py': [
        'Math.PI*l*(R+r)',
        '(Math.PI/2)*(l*(b+D)+(D* D +b* b )/2)',
        'Math.PI*h*(R* R +r* r +R*r)',
    ],
}

e049 = {
    'title': '截头矩形角锥计算',
    'keywords': '截头矩形角锥，体积',
    'desc': '截头矩形角锥计算',
    'p': [
        'a:下底边长1',
        'b:下底边长2',
        'a1:上底边长1',
        'b1:上底边长2',
        'h:高',
    ],
    'res': [
        'res1:截头矩形角锥的体积',
    ],
    'py': [
        'h*((a1+2*a)*b+(2*a1+a)*b1)/6',
        'h*(a*b+(a+a1)*(b+b1)+a1*b1)',
    ],
}

e050 = {
    'title': '楔形计算',
    'keywords': '楔形，体积',
    'desc': '截头矩形角锥计算',
    'p': [
        'b:楔形的底长',
        'a:楔形的三棱的长1',
        'a1:楔形的三棱的长2',
        'h:高',
    ],
    'res': [
        'res1:楔形的体积',
    ],
    'py': [
        'b*h*(a+2*a1)/6',
    ],
}

e051 = {
    'title': '球台计算',
    'keywords': '球台，体积，侧表面积，表面积，半径平方',
    'desc': '球台计算',
    'p': [
        'a:平切圆半径1',
        'b:平切圆半径2',
        'h:球台的高',
        'r:球半径',
    ],
    'res': [
        'res1:球台侧表面积',
        'res2:球台表面积',
        'res3:球台体积',
        'res4:球半径的平方',
    ],
    'py': [
        'Math.PI*2*r*h',
        'Math.PI*(2*r*h+a * a +b* b )',
        'Math.PI*(6/h)*(3*a* a +3*b* b +h* h)',
        'a*a +Math.pow(((a*a -b*b -h* h )/2*h), 2)',
    ],
}

e052 = {
    'title': '球环计算',
    'keywords': '球环，体积，表面积',
    'desc': '球环计算',
    'p': [
        'R:迥转半径',
        'r:迥转圆半径',
    ],
    'res': [
        'res1:迥转圆表面积',
        'res2:迥转圆体积',
    ],
    'py': [
        '(Math.PI)* Math.PI *4*r*R',
        '(Math.PI)* Math.PI *2*R*r* r',
    ],
}

e053 = {
    'title': '椭圆环体计算',
    'keywords': '椭圆环体，体积，表面积',
    'desc': '球台计算',
    'p': [
        'd1:迥转圆直径',
        'D:迥转直径',
        'l:直线段长',
    ],
    'res': [
        'res1:椭圆环体表面积',
        'res2:椭圆环体体积',
    ],
    'py': [
        'Math.PI*d1*(Math.PI*D+2*l)',
        'Math.PI*d1* d1 *(Math.PI*D+2*l)/4',
    ],
}

e054 = {
    'title': '椭圆体计算',
    'keywords': '椭圆体，体积，表面积',
    'desc': '椭圆体计算',
    'p': [
        'a:长半轴',
        'b:短半轴',
        'c:迥转半径',
    ],
    'res': [
        'res1:椭圆体表面积',
        'res2:椭圆体体积',
    ],
    'py': [
        '2* Math.sqrt(2) *b*(a*a+b*b)',
        'Math.PI*(4/3)*a*b*c',
    ],
}

e055 = {
    'title': '切头方锥形基础计算',
    'keywords': '切头方锥形基础，体积',
    'desc': '切头方锥形基础计算',
    'p': [
        'A:上底的两边',
        'B:上底的两边',
        'a:下底的两边',
        'b:下底的两边',
        'h:高',
    ],
    'res': [
        'res2:切头方锥形基础体积',
    ],
    'py': [
        '(h/6)*((2*A+b)*B+(2*a+A)*b)',
    ],
}

e056 = {
    'title': '大小头（方）计算',
    'keywords': '大小头（方），面积',
    'desc': '大小头（方）计算',
    'p': [
        'a1:小头边长1',
        'b1:小头边长2',
        'a:大头边长1',
        'b:大头边长2',
        'h:高',
    ],
    'res': [
        'res1:切头方锥形基础面积',
    ],
    'py': [
        '(a+b+a1+b1)*h',
    ],
}

e057 = {
    'title': '大小头（圆）计算',
    'keywords': '大小头（圆），面积',
    'desc': '大小头（圆）计算',
    'p': [
        'D:大圆直径',
        'd:小圆直径',
        'h:高',
    ],
    'res': [
        'res1:大小头（圆）面积',
    ],
    'py': [
        '((D+d)/2)*Math.PI*h',
    ],
}

e058 = {
    'title': '圆形弯头计算',
    'keywords': '圆形弯头，面积',
    'desc': '圆形弯头计算',
    'p': [
        'd:直径',
        'r:半径',
        'a:圆心角',
    ],
    'res': [
        'res1:圆形弯头）面积',
    ],
    'py': [
        '(Math.PI)* Math.PI *r*a*d/180',
    ],
}

e059 = {
    'title': '矩形弯头计算',
    'keywords': '矩形弯头，面积',
    'desc': '矩形弯头计算',
    'p': [
        'a:边长1',
        'b:边长2',
        'r:半径',
        'c:圆心角',
    ],
    'res': [
        'res1:矩形弯头面积',
    ],
    'py': [
        'Math.PI*r*c*2*(a+b)/180',
    ],
}

e060 = {
    'title': '圆形三通计算',
    'keywords': '圆形三通，面积',
    'desc': '圆形三通计算',
    'p': [
        'D:大口直径',
        'd:小口直径',
        'd1:支通直径',
        'H:主通高度',
        'h:支通高度',
    ],
    'res': [
        'res1:圆形三通面积',
    ],
    'py': [
        'Math.PI*((D+d)*H+(D+d1)*h)/2',
    ],
}

e061 = {
    'title': '矩形三通计算',
    'keywords': '矩形三通，面积',
    'desc': '矩形三通计算',
    'p': [
        'a2:大口直径',
        'b2:大口直径',
        'a:小口直径',
        'b:小口直径',
        'a1:支通直径',
        'b1:支通直径',
        'H:主通高度',
        'r:支通高度',
    ],
    'res': [
        'res1:矩形三通面积',
    ],
    'py': [
        '(a+b+a1+b1)*H+Math.PI*2*r*(a2+b2)/5',
    ],
}

e062 = {
    'title': '天圆地方计算',
    'keywords': '天圆地方，面积',
    'desc': '天圆地方计算',
    'p': [
        'D:圆直径',
        'a:边长',
        'b:边长',
        'H:主通高度',
    ],
    'res': [
        'res1:天圆地方面积',
    ],
    'py': [
        '(Math.PI*D/2+a+b)*H',
    ],
}

e063 = {
    'title': '矩形四边形放坡地坑计算',
    'keywords': '矩形四边形放坡地坑，体积',
    'desc': '矩形四边形放坡地坑计算',
    'p': [
        'A:包括边宽工作面在内的坑底双向开挖尺寸',
        'B:包括边宽工作面在内的坑底双向开挖尺寸',
        'H:地坑开挖深度',
        'K:放坡坡度系数',
    ],
    'res': [
        'res1:矩形四边形放坡地坑体积',
    ],
    'py': [
        '(A+K*H)*(B+K)*H+K* K *H* H * H/3',
    ],
}

e064 = {
    'title': '圆形放坡地坑计算',
    'keywords': '圆形放坡地坑，体积',
    'desc': '圆形放坡地坑计算',
    'p': [
        'r:坡顶圆半径',
        'H:地坑开挖深度',
        'R:坡顶圆半径',
    ],
    'res': [
        'res1:圆形放坡地坑体积',
    ],
    'py': [
        'Math.PI*H*(R*R +r*r+r*R)/3',
    ],
}

e065 = {
    'title': '矩形三边形放坡、一边挡土板地坑计算',
    'keywords': '矩形四边形放坡地坑，体积',
    'desc': '矩形四边形放坡地坑计算',
    'p': [
        'A:包括边宽工作面在内的坑底双向开挖尺寸',
        'B:包括边宽工作面在内的坑底双向开挖尺寸',
        'H:地坑开挖深度',
        'K:放坡坡度系数',
    ],
    'res': [
        'res1:矩形四边形放坡地坑体积',
    ],
    'py': [
        '(A+K*H)*(B+K)*H-K*H* H *(3*B+2*K*H)/6',
    ],
}

e066 = {
    'title': '矩形相邻两边放坡、二边挡土板地坑计算',
    'keywords': '矩形相邻两边放坡、二边挡土板地坑，体积',
    'desc': '矩形相邻两边放坡、二边挡土板地坑计算',
    'p': [
        'A:包括边宽工作面在内的坑底双向开挖尺寸',
        'B:包括边宽工作面在内的坑底双向开挖尺寸',
        'H:地坑开挖深度',
        'K:放坡坡度系数',
    ],
    'res': [
        'res1:矩形相邻两边放坡、二边挡土板地坑体积',
    ],
    'py': [
        '(A+K*H)*(B+K)*H-K*H* H *(3*A+3*B+4*K*H)/6',
    ],
}

e067 = {
    'title': '矩形相对两边放坡、二边挡土板地坑计算',
    'keywords': '矩形相对两边放坡、二边挡土板地坑，体积',
    'desc': '矩形相对两边放坡、二边挡土板地坑计算',
    'p': [
        'A:包括边宽工作面在内的坑底双向开挖尺寸',
        'B:包括边宽工作面在内的坑底双向开挖尺寸',
        'H:地坑开挖深度',
        'K:放坡坡度系数',
    ],
    'res': [
        'res1:矩形相对两边放坡、二边挡土板地坑体积',
    ],
    'py': [
        'A*(B+K*H)*H',
    ],
}

e068 = {
    'title': '矩形三边支档、一边放坡地坑计算',
    'keywords': '矩形三边支档、一边放坡地坑，体积',
    'desc': '矩形三边支档、一边放坡地坑计算',
    'p': [
        'A:包括边宽工作面在内的坑底双向开挖尺寸',
        'B:包括边宽工作面在内的坑底双向开挖尺寸',
        'H:地坑开挖深度',
        'K:放坡坡度系数',
    ],
    'res': [
        'res1:矩形三边支档、一边放坡地坑体积',
    ],
    'py': [
        'A*B+H+B*K*H* * /2',
    ],
}

e069 = {
    'title': '挖地槽放坡无工作面计算',
    'keywords': '挖地槽放坡无工作面，体积',
    'desc': '挖地槽放坡无工作面计算',
    'p': [
        'A:坑底宽度',
        'H:地坑开挖深度',
        'L:长度',
        'K:放坡坡度系数',
    ],
    'res': [
        'res1:挖地槽放坡无工作面体积',
    ],
    'py': [
        'L*(A+K+H)*H',
    ],
}

e070 = {
    'title': '挖地槽、无工作面、单边放坡挡土坡计算',
    'keywords': '挖地槽、无工作面、单边放坡挡土坡，体积',
    'desc': '挖地槽、无工作面、单边放坡挡土坡计算',
    'p': [
        'A:包括边宽工作面在内的坑底双向开挖尺寸',
        'H:地坑开挖深度',
        'L:长度',
        'K:放坡坡度系数',
    ],
    'res': [
        'res1:挖地槽、无工作面、单边放坡挡土坡体积',
    ],
    'py': [
        'L*(A+K*H/2)*H',
    ],
}

e071 = {
    'title': '挖地槽、无放坡无工作面计算',
    'keywords': '挖地槽、无放坡无工作面，体积',
    'desc': '挖地槽、无放坡无工作面计算',
    'p': [
        'A:坑底宽度',
        'H:地坑开挖深度',
        'L:长度',
    ],
    'res': [
        'res1:挖地槽放坡无工作面体积',
    ],
    'py': [
        'L*A*H',
    ],
}

e072 = {
    'title': '不平行四边形计算',
    'keywords': '不平行四边形，面积',
    'desc': '不平行四边形计算',
    'p': [
        'a:底边线段',
        'b:底边线段',
        'c:底边线段',
        'h:高',
        'H:高',
    ],
    'res': [
        'res1:不平行四边形面积',
    ],
    'py': ['((H+h)*a+b*h+c*h)'],
}

all_app = globals().copy()


if __name__ == '__main__':
    if os.path.exists('out'):
        pass
    else:
        os.mkdir('out')
    for key in all_app.keys():
        if len(key) == 4:
            app = all_app[key]
            if isinstance(app, dict):
                pass
            else:
                continue

            app['title'] = app['title'].strip()

            vv = []
            for xx in app['p']:
                tkey, tval = xx.split(':')
                vv.append({tkey.strip(): tval.strip()})
            app['p'] = vv

            uu = []
            for xx, yy in zip(app['res'], app['py']):
                tkey, tval = xx.split(':')
                uu.append({tkey.strip(): tval.strip()})
                app[tkey] = yy
            app['res'] = uu

            print(app['res'])

            for xxx in ['js', 'py', 'keywords', 'desc']:
                if xxx in app:
                    app.pop(xxx)

            # print(type(app))
            # print(app['title'])

            # print(json.dumps(app, indent=2))
            # print(yaml.dump(app, ))
            with open(
                'out/{title}_s{sig}.yaml'.format(title=app['title'], sig=key), 'w'
            ) as fo:
                yaml.dump(
                    app,
                    fo,
                    default_flow_style=False,
                    encoding='utf-8',
                    indent=4,
                    allow_unicode=True,
                )
